Skip to content

Add secure HTTP server communication transport - #73

Open
BenCodez wants to merge 9 commits into
mainfrom
codex/http-transport-library
Open

Add secure HTTP server communication transport#73
BenCodez wants to merge 9 commits into
mainfrom
codex/http-transport-library

Conversation

@BenCodez

@BenCodez BenCodez commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a reusable mTLS HTTP backend/proxy transport under SimpleAPI server communication
  • persist enrollment, replay fences, acknowledgements, queues, and TLS identity with bounded durable state
  • fail closed on partial/corrupt security state and preserve compatibility with the existing VotingPlugin wire protocol
  • add focused runtime, recovery, security, concurrency, and resource-bound regression tests

Validation

  • mvn -B -f SimpleAPI/pom.xml package
  • 221 tests passed
  • shaded JAR: SimpleAPI/target/SimpleAPI.jar (15,044,219 bytes)
  • git diff --check origin/main...HEAD
  • fresh isolated local Codex review: No findings.

Integration order

VotingPlugin PR #1594 remains unchanged and will switch to this shared implementation only after this PR is merged and the resulting SimpleAPI artifact is available.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 5, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-05T03:00:11.524515Z 80a55da New commits
🔒 Security Review Completed 2026-09-05T01:06:38.739066Z e9159c1 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9159c1ee8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4b92ea397b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1faa2d2159

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c01f2ccea2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 80a55dada1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if (path == null || path.isEmpty()) path = "/";
if (!path.endsWith("/")) path += "/";
try {
return new URI("https", null, value.getHost().toLowerCase(Locale.ROOT), value.getPort(), path, null, null);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve escaped endpoint paths during normalization

When an HTTPS endpoint uses a percent-escaped base path, such as https://example.com/api%20root/, getRawPath() returns /api%20root/ but this component constructor escapes the percent sign again, producing /api%2520root/. Encoding and parsing a connection code repeats the corruption, so enrollment and transport requests target the wrong reverse-proxy route; preserve the already-escaped raw path when rebuilding the URI.

Useful? React with 👍 / 👎.

Comment on lines +140 to +141
persistState();
revocationRetryRequired = false;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clear fail-closed state after a successful revocation retry

After a revocation persistence failure, the retry can now persist the removal and clear revocationRetryRequired, but it never clears persistenceFailure; consequently authenticate() continues rejecting every backend certificate until the proxy is restarted even though durable state is consistent again. Fresh evidence in the retry fix is this new successful retry path, which resets only one of the two failure flags; clear the fail-closed flag after the full-state rewrite succeeds.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant